#include "../config.h"
#endif
-#include <stdio.h>
-#if HAVE_UNAME
-#include <sys/utsname.h>
-#endif // HAVE_UNAME
+#include <cstdio>
#include <QDebug>
#include <QDesktopServices>
#include <QVariant>
-#if 0
+#if 1
static const bool testing = true;
#else
static const bool testing = false;
QString UpgradeCheck::getOsName()
{
- // Do not translate these strings.
-#if defined (Q_OS_LINUX)
- return "Linux";
-#elif defined (Q_OS_MAC)
- return "Mac";
-#elif defined (Q_OS_WIN)
- return "Windows";
-#else
- return "Unknown";
-#endif
-
+ return QSysInfo::productType();
}
-// See http://doc.trolltech.com/4.5/qsysinfo.html to interpret results
+
QString UpgradeCheck::getOsVersion()
{
-#if defined (Q_OS_MAC)
- switch (QSysInfo::MacintoshVersion) {
- case QSysInfo::MV_10_3: return "10.3"; break;
- case QSysInfo::MV_10_4: return "10.4"; break;
- case QSysInfo::MV_10_5: return "10.5"; break;
- case QSysInfo::MV_10_6: return "10.6"; break; // Snow Leopard.
- case QSysInfo::MV_10_7: return "10.7"; break; // Lion.
- case QSysInfo::MV_10_8: return "10.8"; break; // Mountain Lion
- case QSysInfo::MV_10_9: return "10.9"; break; // Mavericks
- case QSysInfo::MV_10_10: return "10.10"; break; // Yosemite
- case QSysInfo::MV_10_11: return "10.11"; break; // El Capitan
- case QSysInfo::MV_10_12: return "10.12"; break; // Sierra
- default:
- // This probably doesn't work...
- if (QSysInfo::MacintoshVersion == 0x000E) {
- return "10.13";
- break;
- }
- return QString("Unknown Mac %1").arg(QSysInfo::MacintoshVersion);
- };
-#elif defined (Q_OS_WIN)
-
- switch (QSysInfo::WindowsVersion) {
- // Wildly improbable...
- case QSysInfo::WV_95: return "95"; break;
- case QSysInfo::WV_98: return "98"; break;
- case QSysInfo::WV_Me: return "Me"; break;
-
- case QSysInfo::WV_4_0: return "NT 4"; break;
- case QSysInfo::WV_5_0: return "2000"; break;
- case QSysInfo::WV_5_1: return "XP"; break;
- case QSysInfo::WV_5_2: return "2003"; break;
- case QSysInfo::WV_6_0: return "Vista"; break;
- case QSysInfo::WV_6_1: return "7"; break;
- case QSysInfo::WV_6_2: return "8"; break;
- case QSysInfo::WV_6_3: return "8.1"; break;
-// case QSysInfo::WV_10_0: return "10"; break;
- default:
- if (QSysInfo::WindowsVersion == 0x00a0) return "8";
- if (QSysInfo::WindowsVersion == 0x00b0) return "8.1";
- if (QSysInfo::WindowsVersion == 0x00c0) return "10.0";
- return "Windows/Unknown";
- }
-#endif
- // FIXME: find something appropriately clever to do for Linux, etc. here.
- return "Unknown";
+ return QSysInfo::productVersion();
}
UpgradeCheck::updateStatus UpgradeCheck::checkForUpgrade(
args += "¤t_gui_version=" VERSION;
args += "&installation=" + babelData_.installationUuid_;
args += "&os=" + getOsName();
-#if HAVE_UNAME || defined (Q_OS_MAC)
- struct utsname utsname;
- if (0 == uname(&utsname)) {
- args += "&cpu=" + QString(utsname.machine);
- }
-#endif
-
+ args += "&cpu=" + QSysInfo::currentCpuArchitecture();
args += "&os_ver=" + getOsVersion();
args += QString("&beta_ok=%1").arg(allowBeta);
args += "&lang=" + QLocale::languageToString(locale.language());